import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import Element from 'element-ui'
Vue.config.productionTip = false;

// 批量注册 src/components/ 文件夹下的 全局组件

// const requireAll = require.context("@/components", true, /\.vue$/);  // 这种方式同步加载 所有组件， 初次访问是可能会变慢
import componentsObj from "@/components/index.js";
for (let k in componentsObj) {
  // console.log(componentsObj[k].name);
  Vue.component(componentsObj[k].name, componentsObj[k]);
}

// 1. 引入 elementui 相关
import ElementUI from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
Vue.use(ElementUI);

// 2. 引入 scss 全局样式
import "@/assets/styles/index.scss";

// 3. i18n 国际化
import i18n from "@/language";

// 4. .md 文档编辑器
import mavonEditor from "mavon-editor";
import "mavon-editor/dist/css/index.css";
Vue.use(mavonEditor);

// 5. 自定义指令
import "@/utils/directive/element/dialogDirective"; //dialog拖拽 缺少边界判断

// 6 修改 element 默认属性
Element.Dialog.props.closeOnClickModal.default = false; // 修改 el-dialog 默认点击遮照为不关闭
Element.MessageBox.setDefaults({
  closeOnClickModal: false,
}); // 修改 el-message-box默认点击遮照为不关闭

new Vue({
  router,
  store,
  i18n, //  i18n 国际化
  render: (h) => h(App),
}).$mount("#app");
